#pragma once

// #include "RendererAPI.h"
#include "RendererCommand.h"

#include "OrthographicCamera.h"
#include "Shader.h"

namespace Hazel {

    class Renderer
    {
    public:
        static void Init();
        static void OnWindowResize(uint32_t width, uint32_t height);
        static void BeginScene(OrthographicCamera& camera);//todo:
        static void EndScene();//todo:

        static void Submit(const Hazel::Ref<VertexArray>& vertexArray,const Hazel::Ref<Shader>& shader,const glm::mat4 transform=glm::mat4(1.0f));

        inline static RendererAPI::API GetAPI() { return RendererAPI::GetAPI(); }

    private:
        struct SceneData
        {
            glm::mat4 ViewProjectionMatrix;
        };

        static SceneData* s_SceneData;
    };
}
